home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 16 / CU Amiga Magazine's Super CD-ROM 16 (1997-10-16)(EMAP Images)(GB)[!][issue 1997-11].iso / CUCD / Graphics / Ghostscript / source / dwtext.h < prev    next >
C/C++ Source or Header  |  1996-06-22  |  4KB  |  145 lines

  1. /* Copyright (C) 1996, Russell Lang.  All rights reserved.
  2.   
  3.   This file is part of Aladdin Ghostscript.
  4.   
  5.   Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND.  No author
  6.   or distributor accepts any responsibility for the consequences of using it,
  7.   or for whether it serves any particular purpose or works at all, unless he
  8.   or she says so in writing.  Refer to the Aladdin Ghostscript Free Public
  9.   License (the "License") for full details.
  10.   
  11.   Every copy of Aladdin Ghostscript must include a copy of the License,
  12.   normally in a plain ASCII text file named PUBLIC.  The License grants you
  13.   the right to copy, modify and redistribute Aladdin Ghostscript, but only
  14.   under certain conditions described in the License.  Among other things, the
  15.   License requires that the copyright notice and this notice be preserved on
  16.   all copies.
  17. */
  18.  
  19.  
  20. // dwtext.h 
  21. // Text Window class
  22.  
  23.  
  24. #ifdef _WINDOWS
  25. #define _Windows
  26. #endif
  27.  
  28.  
  29. /* ================================== */
  30. /* text window class */
  31.  
  32.  
  33. class TextWindow {
  34.     HINSTANCE hInstance;        /* required */
  35.     LPSTR    Title;            /* required */
  36.     HICON    hIcon;            /* optional */
  37.  
  38.     BYTE FAR *ScreenBuffer;
  39.     POINT    ScreenSize;        /* optional */
  40.     char    *DragPre;        /* optional */
  41.     char    *DragPost;        /* optional */
  42.     int    nCmdShow;        /* optional */
  43.     HWND    hwnd;
  44.  
  45.     BYTE FAR *KeyBuf;
  46.     BYTE FAR *KeyBufIn;
  47.     BYTE FAR *KeyBufOut;
  48.     unsigned int KeyBufSize;
  49.     BOOL    quitnow;
  50.  
  51.     BOOL    bFocus;
  52.     BOOL    bGetCh;
  53.     char    *fontname;        // font name
  54.     int    fontsize;        // font size in pts
  55.     HFONT    hfont;
  56.     int    CharAscent;
  57.  
  58.     int    CaretHeight;
  59.     int    CursorFlag;
  60.     POINT    CursorPos;
  61.     POINT    ClientSize;
  62.     POINT    CharSize;
  63.     POINT    ScrollPos;
  64.     POINT    ScrollMax;
  65.  
  66.     void error(char *message);
  67.     void new_line(void);
  68.     void update_text(int count);
  69.     void drag_drop(HDROP hdrop);
  70.     void copy_to_clipboard(void);
  71.  
  72. public:
  73.     // constructor
  74.     TextWindow(void);
  75.  
  76.     // destructor
  77.     ~TextWindow(void);
  78.  
  79.     // register window class
  80.     int register_class(HINSTANCE hinst, HICON hicon);
  81.  
  82.     // test if a key has been pressed
  83.     // return TRUE if key hit
  84.     // return FALSE if no key
  85.     int kbhit(void);    
  86.  
  87.     // Get a character from the keyboard, waiting if necessary
  88.     int getch(void);
  89.  
  90.     // Get a line from the keyboard
  91.     // store line in buf, with no more than len characters
  92.     // including null character
  93.     // return number of characters read
  94.     int gets(LPSTR buf, int len);
  95.  
  96.     // Get a line from the keyboard
  97.     // store line in buf, with no more than len characters
  98.     // line is not null terminated
  99.     // return number of characters read
  100.     int read_line(LPSTR buf, int len);
  101.  
  102.     // Put a character to the window
  103.     int putch(int ch);
  104.  
  105.     // Write cnt character from buf to the window
  106.     void write_buf(LPSTR buf, int cnt);
  107.     
  108.     // Put a string to the window
  109.     void puts(LPSTR str);
  110.  
  111.     // Scroll window to make cursor visible
  112.     void to_cursor(void);
  113.  
  114.     // Create and show window with given name and min/max/normal state
  115.     // return 0 on success, non-zero on error
  116.     int create(LPSTR title, int cmdShow);
  117.  
  118.     // Destroy window
  119.     int destroy(void);
  120.     
  121.     // Set window font and size
  122.     // a must choose monospaced 
  123.     void font(const char *fontname, int fontsize);
  124.  
  125.     // Set screen size in characters
  126.     void size(int width, int height);
  127.  
  128.     // Set pre drag and post drag strings
  129.     // If a file is dropped on the window, the following will
  130.     // be poked into the keyboard buffer: 
  131.     //   the pre_drag string
  132.     //   the file name
  133.     //   the post_drag string
  134.     void drag(const char *pre_drag, const char *post_drag);
  135.  
  136.     // member window procedure
  137.     LRESULT WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
  138.  
  139.     // provide access to window handle
  140.     HWND get_handle(void) { return hwnd; };
  141. };
  142.  
  143. /* ================================== */
  144.  
  145.